import numpy as np

### 五、ndarray的矩阵操作
## 1、基本矩阵操作
# 1)算术运算符：加减乘除
n1 = np.random.randint(0, 100, size=(5, 6))
n2 = np.random.randint(0, 100, size=(5, 6))
print(n1 + 1)  # 每个元素分别加1
print(n1 + n2)  # 对应元素进行相加
#
# 2)矩阵积np.dot()
# 矩阵的积，矩阵的点乘。要求第一个矩阵的列数和第二个矩阵的行数一致才可以
n3 = np.random.randint(0, 100, size=(6, 3))
print(np.dot(n2, n3))

## 2、广播机制：1、补全维度；2、假定缺失元素用已有元素补全
# 当运算的ndarray的shape不一致的时候，就会启动广播机制，目的让运算的两个ndarray的shape变成一致
a = np.arange(3).reshape((3, 1))
"""
[[0],
[1],
[2]]
a补全为：
[[0,0,0],
[1,1,1],
[2,2,2]]
"""
b = np.arange(3)
"""
[0,1,2]
b补全为：
[[0,1,2],
[0,1,2],
[0,1,2]]
"""
print(a + b)
